The field of optical character recognition (OCR) has long been applied to the problem of recognizing machine-printed characters from a page of text. However, special problems exist when attempting to recognize handwritten characters, even in the case of constrained, hand-printed formats used by pen-based or "palm top" computers. The difficulty lies in the extreme variability of such images. Historically, no single OCR algorithm has proven adequate to recognize handwritten characters with the desired level of accuracy.
One method of reducing variability has been to map a character image onto a grid of boxes, producing a standardized matrix that can be compared against a set of referents. U.S. Pat. No. 5,539,840 to Krtolica et al. discloses such an approach in which a character image is mapped onto a 16.times.16 matrix. Despite improvements brought about by this technique, there remains a substantial amount of image variability. Thus, there remains a need for an algorithm providing even greater accuracy.
Theoretically, it should be possible for a machine to recognize a character image as well as a human provided that the recognition system is trained with all possible images and sufficient memory is provided to record the learned patterns. This "brute force" method would be nearly error free, except for the effects of noise and the process of quantizing the images to fit the standard matrix. However, such a method is highly impractical. For a 16.times.16 bi-level character image, there are exactly 2.sup.256 (nearly 10.sup.80) unique patterns. Aside from the technical difficulty in storing this many patterns, the time required to recognize the image as well as train the system with all possible referent characters would be excessive.
Thus, there remains a need for a highly accurate recognition system that is not overly sensitive to the effects of character image variability. Moreover, there remains a need for a recognition system that is efficient both in terms of recognition time and storage requirements.